package pe.edu.upc.dreamteam.service.rest;

import java.util.Date;
import java.util.List;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;

import com.google.gson.Gson;

import org.springframework.beans.factory.annotation.Autowired;

import pe.edu.upc.dreamteam.bean.Vuelo;
import pe.edu.upc.dreamteam.dao.VueloDAO;

@Path("/itinerarios")
@Consumes({ MediaType.TEXT_PLAIN })
@Produces({ MediaType.TEXT_PLAIN })
public class Itinerario {

	@Autowired
	VueloDAO vueloDAO;
	
	private Gson gson = new Gson();
	
	
	@GET
	public Response vuelos() {
		List<Vuelo> listado = vueloDAO.consultarVuelos();
		return Response.ok(gson.toJson(listado)).build();
	}
	

	@GET
	@Path("/{id}")
	public Response vuelos(@PathParam("id") Integer id) {
		Vuelo vuelo = vueloDAO.consultarVuelo(id);
		return Response.ok(gson.toJson(vuelo)).build();
	}
	
	@GET
	@Path("/{id}")
	public Response vuelos(@PathParam("id") Date id) {
		List<Vuelo> vuelo = vueloDAO.consultarVuelo(id);
		return Response.ok(gson.toJson(vuelo)).build();
	}
	
	
	@GET
	@Path("/consultavuelo/{aerolinea}/{origen}/{destino}/{fecvueini}/{fecvuefin}")
	public Response vuelos(@PathParam("aerolinea") String aerolinea, @PathParam("origen") String origen,
						   @PathParam("destino") String destino, @PathParam("fecvueini") String fecvueini,
						   @PathParam("fecvuefin") String fecvuefin) {
		List<Vuelo> vuelo = vueloDAO.consultarVuelo(aerolinea,origen,destino,fecvueini,fecvuefin);
		return Response.ok(gson.toJson(vuelo)).build();
	}
	
		
}
